// 写入数据集成文件
const client = require("../db.js");

const db = client.db(global.config.db.name); // 获取数据库对象（虽然已经在URI中指定，但这里可以再次确认）

let delData = async (data, dbName) => {
  return new Promise(async (resolve, reject) => {

    if (Array.isArray(data) && data.length == 0) {
      reject("参数不正确");
      return;
    } else if (!data.id && !Array.isArray(data)) {
      reject("参数不正确");
      return;
    }

    try {
      const collection = db.collection(dbName); // 获取集合对象

      // 判断 传递过来的参数 是对象 还是 数组 如果是对象 执行 单个删除逻辑  否则 执行多条删除逻辑 如果是多条 字段 默认为 id
      if (Array.isArray(data)) {
        let flag = true;
        for (let i = 0; i < data.length; i++) {
          let item = data[i];
          // 删除单条数据
          let result = await collection.deleteOne({ id: item.id });
          if (result.deletedCount != 1) {
            flag = false;
          }

        }

        if (flag) {
          resolve({
            msg: "删除成功",
            code: 20000,
          });
        } else {
          reject({
            code: 50000,
            msg: "删除失败",
          });
        }
      } else {
        // 删除单条数据
        let result = await collection.deleteOne({ id: data.id });

        if (result.deletedCount == 1) {
          resolve({
            msg: "删除成功",
            code: 20000,
          });
        } else {
          reject({
            code: 50000,
            msg: "删除失败",
          });
        }
      }
    } catch (error) {
      reject({
        code: 50000,
        msg: error,
      });
    }
  });
};

module.exports = delData;
